Field of the Invention
The present invention relates to communication over a bus, and more particularly, to implementing dynamic bus inversion by adding hardware resources.
Description of the Related Art
In various computer and memory related devices, it is common for various elements to be connected by one or more communication busses for transferring commands and data. For example, in a flash memory device, such as a memory card or USB memory drive, the device communicates through an interface that acts as a bus. Additionally, within the device various components communicate with each other using one or more busses. Using the flash memory device, as an example, the various components of the device may include controller connected to one or more memory chips through one or more busses.
In memory systems where power consumption is a concern, the technique of bus inversion is often employed. Power consumption depends on the amount of transition for the bus lines, wherein the greater number of transitions results in higher power consumption. Within the transition, a high to high transition consumes less power than high to low or low to high transitions. The idea of data inversion is employed to minimize the number of transitions in the bus, and the consequent power usage. A high switching noise occurs when all of the data bits in the bus lines need to switch from high to low or low to high at the same time, also termed “simultaneously switching output (SSO)”. The increased switching leads to system integrity issues. It is, therefore, desirable to reduce the high switching noise and minimize power consumption.
In order to minimize the number of transitions in the bus and to reduce power consumption, data inversion technique is employed. The idea of data inversion technique, such as dynamic bus inversion (DBI) technique, is to minimize the number of transitions in the bus and the consequent power usage, by determining at each cycle whether to invert the data bus and to provide an indication of this to the receiving end, so that the receiving end knows whether or not to re-invert data in order to extract the correct content. This requires the system, at the receiving end, to determine at each transfer cycle whether or not to change inversion of the bus. Such determination can be accomplished using a process called “majority voting”.
One way of implementing the DBI technique is to divide one wide bus into few narrow busses, and to add separate inversion controls to each one of the narrow busses. This is true, especially for implementing the “majority voting” for buses that transfer high frequency data. The main disadvantage with this solution is that it leads to additional output requirements, such as extra bits (DBI bit) and extra pins (DBI pin), to indicate to the receiver whether or not the bus is inverted. Another disadvantage with this DBI technique is that it causes excessive toggling of data bus lines leading to signal integrity issues in the data bus lines.
It is within this context that embodiments of the present invention arise.